import tensorflow as tf

# 在tensorflow框架下编写python代码
# 1.	定义变量a，值为24（8分）
a = tf.Variable(24, dtype=tf.float32)

# 2.	定义变量a乘以3的操作（8分）
am3 = tf.multiply(a, 3.)

# 3.	定义变量a除以2的操作（8分）
ad2 = tf.divide(a, 2.)

# Define variables
f = tf.Variable([[7, 2, 8], [8, 1, 9]], dtype=tf.float32)
res = tf.Variable(0, dtype=tf.float32)

# 4.	创建Session对象（8分）
with tf.compat.v1.Session() as sess:

    # 5.	执行全局变量初始化（8分）
    sess.run(tf.compat.v1.global_variables_initializer())

    # 6.	输出变量a的值（8分）
    print(f'变量a的值: {sess.run(a)}')

    # 7.	执行变量a乘以3的操作，输出结果（8分）
    print(f'执行变量a乘以3的操作，输出结果: {sess.run(am3)}')

    # 8.	把结果赋值给a（8分）
    tf.compat.v1.assign(a, am3)

    # 9.	执行变量a除以2的操作，输出结果（8分）
    print(f'执行变量a除以2的操作，输出结果: {sess.run(ad2)}')

    # 10.	对张量[[7,2,8],[8,1,9]] 执行转置函数，参数用默认值，写出最后的结果（8分）
    print(f'转置后: {sess.run(tf.transpose(f))}')

    # 11.	完成100以内所有的偶数的求和运算，输出每个步骤的结果。（每个步骤5分，至少4个步骤，共20分）
    for i in range(2, 101, 2):
        print(sess.run(tf.compat.v1.assign(res, tf.add(res, i))))
